<p>This method is invoked in the constructor of of the superclass. At this point, the fields of the class have not yet initialized. To make this more concrete, consider the following classes:</p>
<pre>
  abstract class A {
    int hashCode;
    abstract Object getValue();
    A() {
      hashCode = getValue().hashCode();
    }
  }
  class B extends A {
    Object value;
    B(Object v) {
      this.value = v;
    }
    Object getValue() {
      return value;
    }
  }
</pre>
<p>When a B is constructed, the constructor for the A class is invoked before the constructor for B sets value. Thus, when the constructor for A invokes getValue, an uninitialized value is read for value.</p>